Excel

您所在的位置:网站首页 excel 公式条件格式 Excel

Excel

2024-01-28 00:04| 来源: 网络整理| 查看: 265

 

之前想用Excel做一个可以反映项目进度计划的自动甘特图,网上查了一些教程,但都只能反映计划,不能反映项目进度情况。然后发现Excel的联机模板里面就有一个比较好的甘特图模板,于是参考其原理仿做了一个简单的Excel甘特图。

 

原资料分析

 

参考的Excel联机模板

 

这个甘特图模板有几个特点:

 

可以反映出计划周期与实际周期的关系日期高亮百分比换算表示实际进度配色和排版都漂亮

 

分析了一下这个模板的甘特图实现原理,其实就是利用Excel的条件格式功能进行单元格填充,那做起来还是比较简单的。

 

制作前的思考

 

为了方便实际项目使用,我想要的甘特图还需要做一些调整:

 

原模板是使用单位时间计划任务的,需要将其调整为使用日期计算除了原本的日期高亮,还需要实现节点日高亮添加周末高亮原模板实际工期不输入的话甘特图显示是错误的,那只有等到计划任务全部完成后这个甘特图才能显示正确,所以这个完成百分比就显得很鸡肋了,干脆去掉百分比的相关显示我好像做不出这么好的配色...钢铁直男无所谓了,好用就行

 

成品演示

 

 

制作解析

 

首先讲一下原理,Excel有一个叫条件格式的功能,这个功能允许通过公式判定单元格内的数据,如果满足条件,则按照设定修改单元格格式。所实现的这个甘特图就是使用了日期进行判定运算,然后对甘特图内的单元格进行颜色填充或者边框线调整。

 

下面进行步骤解析

 

首先在Excel中调整一个格式,后面涉及到公式部分都基于下图格式

 

 

 

先实现周末高亮,逻辑很简单,通过Excel的weekday函数判断一下就可以了:

 

光标放在H12,在开始选项卡里点击 条件格式 下拉按钮点击 新建规则点击 使用公式确定要设置格式的单元格公式输入 "=WEEKDAY(H$12,2)>5"设定格式调整条件格式应用范围

 

公式:"=WEEKDAY(H$12,2)>5"

 

使用WEEKDAY(serial_number,return_type)这个Excel函数可以返回输入数值在一周内是第几天,输入H12里面的数值的话返回值应为6,再判断这个返回值是否大于5就可以知道是否为周末了。

 

 

 

 

然后实现计划周期显示,逻辑是判断单元格内日期是否在计划开始日期与计划结束日期之间:

 

光标放在H13,其他步骤参考上一小节公式输入 "=AND(H$12>=$C13,H$120)"注意调整条件格式应用范围

 

公式:"=AND(H$12>=$C13,H$120)"

 

使用Excel函数AND(logical1,logical2,...)可以判断多个条件,当条件全部满足时则返回真值,这里输入了三个条件:

 

H$12>=$C13——判断H12单元格内的值是否大于或等于C13单元格内的值;

 

H$120——当C13单元格大于0,即开始日期需要有输入,甘特图才显示相关数据。

 

 

 

计划周期内的实际工作时间显示,逻辑是判断出在计划周期内,实际启动日期到计划结束日期的单元格。

 

光标放在H13,其他步骤参考第一小节公式输入 "=AND(H$12>=MAX($C13,$E13),H$120)"注意调整条件格式应用范围

 

公式:"=AND(H$12>=MAX($C13,$E13),H$120)"

 

实现方法与前一节相仿,条件稍微调一下:

 

(H$12>=MAX($C13,$E13)——先判断C13与E13的最大值,可获得计划周期内的实际启动日期,再判断H12单元格是否大于或等于这个日期;

 

H$120——当实际启动日期有输入才在甘特图中显示相关数据。

 

 

注意检查条件格式的顺序,越上面的条件格式会将下方的条件格式覆盖

 

 

计划周期前的实际工作时间显示,逻辑是判断出实际启动日期及实际结束日期在计划启动日期之前的单元格。

 

光标放在H13,其他步骤参考第一小节公式输入 "=AND(H$12>=$E13,H$120)"注意调整条件格式应用范围

 

公式:"=AND(H$12>=$E13,H$120)"

 

同样是三个条件:

 

H$12>=$E13——判断单元格是否大于及等于实际启动日期;

 

H$120——同上一小节。

 

 

 

计划周期后的实际工作时间显示,体现项目延期的这个部分我用了两个条件格式,分别用来判定两种情况,一种是实际启动日期早于计划结束日期,一种是实际启动日期比计划结束日期还晚。公式分别如下:

 

"=AND(H$12>=MAX($D13+1,$E13),H$120)"

 

"=AND(H$12>$D13,H$12=MAX($D13+1,$E13),H$120)"

 

老套路:

 

H$12>=MAX($D13+1,$E13)——MAX函数判断实际启动日期晚还是计划结束日期晚,单元格值需要等于或者大于这个日期;

 

H$120——同样用于判断是否有开始日期的输入。

 

公式:"=AND(H$12>$D13,H$12


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3